MovieClipLoader.loadClip()

Доступность

Flash Player 7.

Синтаксис

my_mcl.loadClip(url:String, target:Object ) : Boolean

Параметры

url Абсолютный или относительный URL-адрес SWF или JPEG файла для загрузки. Относительный путь должен отсчитыватья от SWF-файла, находящегося на основном уровне 0. Абсолютный URL-адрес должен иметь спецификацию протокола, такую как, например, http:// или file:///. Имена файлов не могут содержать спецификации диска.

target Число, определяющее уровень во флэш плеере или путь к клипу, в который файл должен быть загружен. Содержимое клипа будет замещено загружаемым SWF файла или изображением.

Возвращает

Булево значение. Возвращаемое значение равно true, если запрос URL-адреса успешен; в противном случае возвращается false.

Описание

Метод; загружает SWF или JPEG файл в клип во флэш плеере во время воспроизведения исходного ролика. Использование этого метода позволяет показывать несколько SWF файлов сразу или переключаться между ними без загрузки другой HTML-страницы.

Использование этого метода вместо loadMovie() или MovieClip.loadMovie() имеет ряд преимуществ. За счет использования объекта, принимающего сообщения о событиях (listener), зарегистрированного с помощью MovieClipLoader.addListener(listenerObject), реализуются следующие обработчики.

SWF файл или изображение, загруженные в клип, наследуют его свойства : расположение, поворот и масштаб. Путь к клипу можно использовать и для обращения к загруженному клипу.

Метод loadClip() можно использовать для загрузки одного или нескольких файлов в один и тот же клип или уровень: объекты MovieClipLoader передают указатель на загруженный клип в качестве параметра, хотя можно создавать для каждого загружаемого файла и отдельный объект MovieClipLoader.

Используйте MovieClipLoader.unloadClip() для удаления SWF или изображения, загруженных с помощью этого метода или для прекращения текущей загрузки.

MovieClipLoader.getProgress() и MovieClipLoaderListener.onLoadProgress не выдают реальных значений bytesLoaded и bytesTotal при тестировании в среде разработки для локальных файлов. Когда Вы используете возможности Bandwidth Profiler в среде разработки FLASH, MovieClipLoader.getProgress() и MovieClipLoaderListener.onLoadProgress выдают реальные скорости загрузки, а не установленные для тестирования.

Пример

Следующий пример иллюстирует использование многих методов класса MovieClipLoader .

// первый набор listener'ов
var my_mcl:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myListener.onLoadStart = function(target_mc:MovieClip) {
  trace("*********First my_mcl instance*********");
  trace("Your load has begun on movie clip = "+target_mc);
  var loadProgress:Object = my_mcl.getProgress(target_mc);
  trace(loadProgress.bytesLoaded+" = bytes loaded at start");
  trace(loadProgress.bytesTotal+" = bytes total at start");
};
myListener.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) {
  trace("*********First my_mcl instance Progress*********");
  trace("onLoadProgress() called back on movie clip "+target_mc);
  trace(loadedBytes+" = bytes loaded at progress callback");
  trace(totalBytes+" = bytes total at progress callback");
};
myListener.onLoadComplete = function(target_mc:MovieClip) {
  trace("*********First my_mcl instance*********");
  trace("Your load is done on movie clip = "+target_mc);
  var loadProgress:Object = my_mcl.getProgress(target_mc);
  trace(loadProgress.bytesLoaded+" = bytes loaded at end");
  trace(loadProgress.bytesTotal+" = bytes total at end");
};
myListener.onLoadInit = function(target_mc:MovieClip) {
  trace("*********First my_mcl instance*********");
  trace("Movie clip = "+target_mc+" is now initialized");
  // теперь можно применять любые установки, например:
  target_mc._width = 100;
  target_mc._height = 100;
};
myListener.onLoadError = function(target_mc:MovieClip, errorCode:String) {
  trace("*********First my_mcl instance*********");
  trace("ERROR CODE = "+errorCode);
  trace("Your load failed on movie clip = "+target_mc+"\n");
};
my_mcl.addListener(myListener);
// загрузим файлы по назначению.
// загружаем в мувиклип
this.createEmptyMovieClip("clip1_mc", this.getNextHighestDepth());
clip1_mc._x = 400;
this.createEmptyMovieClip("clip2_mc", this.getNextHighestDepth());
my_mcl.loadClip("http://www.macromedia.com/software/drk/images/box_drk5.jpg", clip1_mc);
my_mcl.loadClip("http://www.macromedia.com/devnet/images/160x160/ben_forta.jpg", clip2_mc);
clip2_mc._x = 200;
// загружаем на _level1 
my_mcl.loadClip("http://www.macromedia.com/devnet/images/160x160/mike_chambers.jpg", 1);
//
// второй набор listene'ов
var another_mcl:MovieClipLoader = new MovieClipLoader();
var myListener2:Object = new Object();
myListener2.onLoadStart = function(target_mc:MovieClip) {
  trace("*********Second my_mcl instance*********");
  trace("Your load has begun on movie = "+target_mc);
  var loadProgress:Object = my_mcl.getProgress(target_mc);
  trace(loadProgress.bytesLoaded+" = bytes loaded at start");
  trace(loadProgress.bytesTotal+" = bytes total at start");
};
myListener2.onLoadComplete = function(target_mc:MovieClip) {
  trace("*********Second my_mcl instance*********");
  trace("Your load is done on movie clip = "+target_mc);
  var loadProgress:Object = my_mcl.getProgress(target_mc);
  trace(loadProgress.bytesLoaded+" = bytes loaded at end");
  trace(loadProgress.bytesTotal+" = bytes total at end");
};
myListener2.onLoadError = function(target_mc:MovieClip, errorCode:String) {
  trace("*********Second my_mcl instance*********");
  trace("ERROR CODE = "+errorCode);
  trace("Your load failed on movie clip = "+target_mc+"\n");
};
another_mcl.addListener(myListener2);
/* загрузим файлы по назначению(используя второй экземпляр  MovieClipLoader) */
another_mcl.loadClip("http://www.macromedia.com/devnet/images/160x160/flex_logo.jpg", this.createEmptyMovieClip("clip4_mc", this.getNextHighestDepth()));
clip4_mc._y = 200;
// вставьте следующие операторы после окончания загрузки, 
// и после вызова my_mcl.onLoadInit .
// my_mcl.removeListener(myListener);
// my_mcl.removeListener(myListener2);

См. также

MovieClipLoader.unloadClip()